package com.ql.design.template;
/**
 * 又叫模板方法模式，在一个方法中定义一个算法的骨架，而将一些步骤延迟到子类中。
 * 模板方法使得子类可以在不改变算法结构的情冴下，重新定义算法中的某些步骤。
 * 
 *模板方法模式  主要是通过继承完成的
 */
public class Client {
	
	/**
	 * >模板模式定义了算法的步骤，把这些步骤的实现延迟到子类
		2>模板模式为我们提供了一个代码复用的技巧
		3>模板抽象类中可以定义具体方法、抽象方法和钩子方法
		4>为了防止子类改变模板中的算法，可以将模板方法声明为final
		5>钩子是一种方法，它在抽象类中不做事，或只做默认的事，子类可以选择要不要实现它
	 * @param args
	 */
		public static void main(String[] args) {
			HummerModel  h1 = new HummerModelH1();
			h1.run();
			
			HummerModel  h2 = new HummerModelH2();
			h2.run();
		}
}
